Graficación y mapeo de los mamíferos respecto a las Regiones Socioeconómicas en Costa Rica

Author

Amy Fonseca González C12935 y Diego Camacho Palacios C21572

Tabla de Contenidos

1- Introducción

2- Carga de Datos y Paquetes

3- Mapa de riqueza de especies de mamíferos en regiones socioeconómicas

4- Tabla de riqueza de especies de mamíferos en regiones socioeconómicas

5- Gráficos estadísticos

5.1- Gráfico de barras de riqueza de especies de mamíferos en regiones socioeconómicas

1. Introducción

En primer lugar se utilizará información del Atlas de Costa Rica del año 2014, el cual posee capas actualizadas con datos originales, siendo datos que se incorporan de forma muy reciente, lo que hace que sean más precisas las capas. Además, quienes utilizan este tipo de infromación, tienen acceso libre a dicha base de datos. Se entiede que, este sistema ha creado un filtro de búsqueda para que sea más fácil la obtención de información de interés, ya sea cualquier tipo de capas de datos necesitada.

En otro aspecto, se hizo el uso de fuentes como un csv, que incluye infromación de distintos mamíferos encontrados en el país de Costa Rica, para lograr realizar diferentes análisis estadísticos. Con esto se alcanza a observar de una forma más exacta información sobre la biodiversidad, influyendo en el aprendendizaje de los mamíferos encontrados en este país.

Infromación obtenida de:

2. Carga de Paquetes y Datos

Code
library(tidyverse)
library(sf)
library(leaflet)
library(leaflet.extras)
library(leafem)
library(viridisLite)
library(DT)
library(devtools)
library(ggplot2)
library(ggplotlyExtra)
library(plotly)
library(ggthemes)

Carga de Datos

Code
regiones_socioeconómicas <-
  st_read("regiones_socioeconomicas_simp_10m.geojson", quiet = TRUE
  ) |> 
  st_transform(4326)

Registros de Presencia de Mamíferos

Code
mamiferos <-
  st_read(
    "mamiferos.csv",
    options = c(
      "X_POSSIBLE_NAMES=decimalLongitude", # columna de longitud decimal
      "Y_POSSIBLE_NAMES=decimalLatitude"   # columna de latitud decimal
    ),
    quiet = TRUE
  )
# Asignación del CRS WGS84
st_crs(mamiferos) <- 4326

Unión(“join”) espacial de Regiones Socioeconómicas que son polígonos con registros de presencia de mamíferos (puntos)

  1. Unión espacial de mamíferos y regiones socioeconómicas
Code
mamiferos_union_regiones <-
  st_join(
    x = mamiferos,
    y = dplyr::select(regiones_socioeconómicas, codigo),
    join = st_within
  )
  1. Conteo cantidad de mamiferos en cada región
Code
riqueza_especies_mamiferos_regiones <-
  mamiferos_union_regiones |>
  st_drop_geometry()|>
  group_by(codigo) |>
  summarize(riqueza_especies_mamiferos_regiones = n_distinct(species, na.rm = TRUE))
  1. Unión no espacial de Regiones Socioeconómicas con dataframe de riqueza de especies en Regiones Socioeconómicas
Code
regiones_union_riqueza <-
  left_join(
    x = regiones_socioeconómicas,
    y = riqueza_especies_mamiferos_regiones,
    by = "codigo"
  ) |>
  replace_na(list(riqueza_especies_mamiferos_regiones = 0))

3. Mapa de riqueza de especies de mamíferos en regiones socioeconómicas

Code
colores_riqueza_especies <-
  colorNumeric(
    palette = "Reds",
    domain = regiones_union_riqueza$riqueza_especies_mamiferos_regiones,
    na.color = "transparent"
  )

# Paleta de colores de especies
colores_especies <- colorFactor(
  palette = viridis(length(unique(mamiferos$species))), 
  domain = mamiferos$species
)

# Mapa leaflet
leaflet() |>
  setView(
    lng = -84.19452,
    lat = 9.572735,
    zoom = 7) |>
  addTiles(group = "Mapa general (OpenStreetMap)") |>
  addProviderTiles(
    providers$Esri.WorldImagery, 
    group = "Imágenes satelitales (ESRI World Imagery)"
  ) |> 
  addPolygons(
    data = regiones_union_riqueza,
    fillColor = ~ colores_riqueza_especies(regiones_union_riqueza$riqueza_especies_mamiferos_regiones),
    fillOpacity = 0.8,
    color = "black",
    stroke = TRUE,
    weight = 1.0,
    popup = paste(
      paste("<strong>Cantón:</strong>", regiones_union_riqueza$region),
      paste("<strong>Riqueza de especies:</strong>", regiones_union_riqueza$riqueza_especies_mamiferos_regiones),
      sep = '<br/>'
    ),
    group = "Riqueza de especies"
  ) |>
  addScaleBar(
    position = "bottomleft", 
    options = scaleBarOptions(imperial = FALSE)
  ) |>    
  addLegend(
    position = "bottomleft",
    pal = colores_riqueza_especies,
    values = regiones_union_riqueza$riqueza_especies_mamiferos_regiones,
    group = "Riqueza de especies",
    title = "Riqueza de especies"
  ) |>
  addCircleMarkers(
    data = mamiferos,
    stroke = F,
    radius = 4,
    fillColor = ~colores_especies(mamiferos$species),
    fillOpacity = 1.0,
    popup = paste(
      paste0("<strong>Especie: </strong>", mamiferos$species),
      paste0("<strong>Localidad: </strong>", mamiferos$locality),
      paste0("<strong>Fecha: </strong>", mamiferos$eventDate),
      paste0("<strong>Fuente: </strong>", mamiferos$institutionCode),
      paste0("<a href='", mamiferos$occurrenceID, "'>Más información</a>"),
      sep = '<br/>'
  )) |>  
  addLayersControl(
    baseGroups = c(
      "Mapa general (OpenStreetMap)", 
      "Imágenes satelitales (ESRI World Imagery)"
    ),
    overlayGroups = c(
      "Riqueza de especies"
    )
  ) 

4. Tabla de riqueza de especies de mamíferos en regiones socioeconómicas

Code
mamiferos_union_regiones <- 
  st_join(
    x = mamiferos,
    y = dplyr::select(regiones_socioeconómicas, codigo), # selección de columna cod_canton
    join = st_within
  )

riqueza_especies_mamiferos_regiones <-
  mamiferos_union_regiones |>
  st_drop_geometry() |>
  group_by(codigo) |>
  summarize(riqueza_especies_mamiferos_regiones = n_distinct(species, na.rm = TRUE))

regiones_union_riqueza <-
  left_join(
    x = regiones_socioeconómicas,
    y = riqueza_especies_mamiferos_regiones,
    by = "codigo"
  ) |>
  replace_na(list(riqueza_especies_mamiferos_regiones = 0))


regiones_union_riqueza |>
  st_drop_geometry() |>
  dplyr::select(region, riqueza_especies_mamiferos_regiones) |>
  arrange(desc(riqueza_especies_mamiferos_regiones)) |>
  datatable(
    colnames = c("Nombre de la region sociecómica", "Riqueza de especies de mamiferos según su región sociecónomica"),
    options = list(
      pageLength = 5,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    )
  )

5. Gráficos estadísticos

5.1. Gráfico de barras de riqueza de especies de mamíferos en regiones socioeconómicas

Code
grafico_barras_ggplot2 <-
  riqueza_especies_mamiferos_regiones |>
  ggplot(aes(x = reorder(codigo,-riqueza_especies_mamiferos_regiones), y = riqueza_especies_mamiferos_regiones)) +
  geom_col(
    aes(
      text = paste0(
        "Riqueza de especies de de mamíferos en regiones socioeconómicas: ", round(after_stat(y), 2)
      )
    )    
  ) + 
  ggtitle("Riqueza de especies de mamíferos en regiones socioeconómicas") +
  xlab("Regiones socioeconómicas") +
  ylab("Riqueza de especies de mamíferos") +
  labs(caption = "Fuente: GBIF") +
  theme_clean() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))


# Gráfico de barras plotly
ggplotly(grafico_barras_ggplot2, tooltip = "text") |>
  config(locale = 'es')

5.2. Gráfico de barras de cantidad de registros de presencia de Bradypus variegatus (perezoso de tres dedos) por año, desde 2000 (inclusive) hasta 2023 (inclusive)

Code
# Filtro de los registros de presencia de Bradypus variegatus por año
registros_bradypus <- mamiferos |>
  filter(species == "Bradypus variegatus", year >= 2000, year <= 2023) |>
  group_by(year) |>
  summarize(n = n())

# Gráfico de barras con ggplot2
grafico_barras_ggplot2 <- ggplot(data = registros_bradypus, aes(x = year, y = n, text = paste("Año:", year, "<br>Cantidad de registros:", n))) +
  geom_bar(stat = "identity") +
  labs(title = "Registros de presencia de Bradypus variegatus por año", x = "Año", y = "Cantidad de registros") +
  theme_clean()

# Gráfico con plotly 
grafico_interactivo <- ggplotly(grafico_barras_ggplot2, tooltip = "text")
grafico_interactivo